With the increasing usage of mobile devices, data communication and transmission between a client and server has evolved. As smart phones have increased in popularity due to their capabilities, users may wish to use them to the fullest potential. Mobile devices allow the possibility to perform job responsibilities remotely through network communication. This requires a seamless and reliable data connection between two working entities. An average business user, for example, may wish to update account information or even publish sales data on their Customer Relationship Management (CRM) system from their mobile device. In order for this to be achieved, one could simply install an enterprise application onto their mobile device and connect to their server so that they may perform the task at hand.
Communication and data transmission is done through a client-server network model. The overall structure is divided in two working entities. A client may be considered a service requester (also referred to as “subscriber”), and a server may be considered a service provider (also referred to as “publisher”). Data messages are constantly being exchanged between the client (e.g., a mobile device) and the server as information is being received, processed, and then sent from both ends of the communication channel. Such data messages may require guaranteed delivery or delivery in a specific order. Any number of requirements may be imposed on a client-server communication with messages to achieve efficiency, accuracy, and quality of service.